package cn.iocoder.yudao.module.eval.controller.admin.monitoring.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 评价进度 Response VO")
@Data
public class EvalProgressRespVO {

    @Schema(description = "计划ID", example = "1")
    private Long planId;

    @Schema(description = "计划名称", example = "2024年第一批电工认定")
    private String planName;

    @Schema(description = "总体进度", example = "75.5")
    private Double overallProgress;

    @Schema(description = "开始时间", example = "2024-01-01 09:00:00")
    private LocalDateTime startTime;

    @Schema(description = "预计结束时间", example = "2024-01-31 17:00:00")
    private LocalDateTime expectedEndTime;

    @Schema(description = "实际进度", example = "80.0")
    private Double actualProgress;

    @Schema(description = "科目进度列表")
    private List<SubjectProgress> subjectProgresses;

    @Schema(description = "科目进度")
    @Data
    public static class SubjectProgress {

        @Schema(description = "科目ID", example = "1")
        private Long subjectId;

        @Schema(description = "科目名称", example = "理论考试")
        private String subjectName;

        @Schema(description = "进度", example = "80.0")
        private Double progress;

        @Schema(description = "状态", example = "进行中")
        private String status;

        @Schema(description = "已评价人数", example = "80")
        private Integer evaluatedCount;

        @Schema(description = "总人数", example = "100")
        private Integer totalCount;

    }

}
